home *** CD-ROM | disk | FTP | other *** search
- ;* SDEVICE.INC
- ;*
- ;* Sound Device definitions
- ;*
- ;* $Id: sdevice.inc,v 1.4 1997/01/16 18:41:59 pekangas Exp $
- ;*
- ;* Copyright 1996,1997 Housemarque Inc.
- ;*
- ;* This file is part of the MIDAS Sound System, and may only be
- ;* used, modified and distributed under the terms of the MIDAS
- ;* Sound System license, LICENSE.TXT. By continuing to use,
- ;* modify or distribute this file you indicate that you have
- ;* read the license and understand and accept it fully.
- ;*
-
-
- IFDEF __16__
- SMPMAX = 65519 ; max sample length (65536-16 - 1)
- ELSE
- SMPMAX = 4294967279 ; max sample length (2^32 - 17)
- ENDIF
-
- MAXSAMPLES = 256 ; maximum number of samples
-
-
- ;/***************************************************************************\
- ;* enum sdSampleType
- ;* -----------------
- ;* Description: Sample types
- ;\***************************************************************************/
-
- ENUM sdSampleType \
- smpNone = 0, \ ; no sample
- smp8bitMono = 1, \ ; 8-bit mono unsigned sample
- smp8bit = smp8bitMono, \ ; for compatibility
- smp16bitMono = 2, \ ; 16-bit mono signed sample
- smp16bit = smp16bitMono, \ ; for compatibility
- smp8bitStereo = 3, \ ; 8-bit stereo unsigned sample
- smp16bitStereo = 4 ; 16-bit stereo signed sample
-
-
-
-
- ;/***************************************************************************\
- ;* enum sdLoopMode
- ;* ---------------
- ;* Description: Sample looping modes
- ;\***************************************************************************/
-
- ENUM sdLoopMode \
- sdLoopNone = 0, \ ; no looping */
- sdLoop1, \ ; 1 loop, release ends note
- sdLoop1Rel, \ ; 1 loop, sample data after loop is
- \ ; played when note is released
- sdLoop2, \ ; 2 loops, when note is released
- \ ; playing is continued looping the
- \ ; second loop
- sdLoopAmigaNone, \ ; Amiga compatible looping, no
- \ ; loop - ALE logic enabled anyway
- sdLoopAmiga ; Amiga compatible looping - 1
- ; loop, ALE logic enabled
-
-
-
-
- ;/***************************************************************************\
- ;* enum sdLoopType
- ;* ---------------
- ;* Description: Sample looping type for one loop
- ;\***************************************************************************/
-
- ENUM sdLoopType \
- loopNone = 0, \ ; no looping
- loopUnidir, \ ; unidirectional loop
- loopBidir ; bidirectional loop
-
-
-
-
- ;/***************************************************************************\
- ;* enum sdSmpPos
- ;* -------------
- ;* Description: Sample positions in memory
- ;\***************************************************************************/
-
- ENUM sdSmpPos \
- sdSmpNone = 0, \ ; no sample
- sdSmpConv, \ ; conventional memory
- sdSmpEMS ; EMS
-
-
-
-
- ;/***************************************************************************\
- ;* struct sdSample
- ;* ---------------
- ;* Description: Sound Device sample information structure
- ;\***************************************************************************/
-
- STRUC sdSample
-
- D_ptr sample ; sample data pointer
- D_int samplePos ; sample position in memory, see enum
- ; sdSmpPos
- D_int sampleType ; sample type, see enum sdSampleType
- D_int sampleLength ; sample length
- D_int loopMode ; sample looping mode, see enum
- ; sdLoopMode
- D_int loop1Start ; first loop start
- D_int loop1End ; first loop end
- D_int loop1Type ; first loop type, see enum sdLoopType
- D_int loop2Start ; second loop start
- D_int loop2End ; second loop end
- D_int loop2Type ; second loop type, see enum
-
- ENDS
-
-
-
- ;/***************************************************************************\
- ;* enum sdPanning
- ;* --------------
- ;* Description: Sound Device panning values. Legal values range from
- ;* panLeft to panRight, in steps of 1, plus panSurround.
- ;* Surround sound is played from middle if surround is not
- ;* enabled.
- ;\***************************************************************************/
-
- ENUM sdPanning \
- panLeft = -64, \ ; left speaker
- panMiddle = 0, \ ; middle (both speakers)
- panRight = 64, \ ; right speaker
- panSurround = 80h ; surround sound
-
-
-
-
- ;/***************************************************************************\
- ;* enum sdMode
- ;* -----------
- ;* Description: Possible SoundDevice output modes
- ;\***************************************************************************/
-
- ENUM sdMode \
- sdMono = 1, \ ; mono
- sdStereo = 2, \ ; stereo
- sd8bit = 4, \ ; 8-bit output
- sd16bit = 8 ; 16-bit output
-
-
-
-
- ;/***************************************************************************\
- ;* enum sdConfigBits
- ;* -----------------
- ;* Description: Sound Device configuration information bits
- ;\***************************************************************************/
-
- ENUM sdConfigBits \
- sdUsePort = 1, \ ; SD uses an I/O port
- sdUseIRQ = 2, \ ; SD uses an IRQ
- sdUseDMA = 4, \ ; SD uses a DMA channel
- sdUseMixRate = 8, \ ; SD uses the set mixing rate
- sdUseOutputMode = 16, \ ; SD uses the set output mode
- sdUseDSM = 32 ; SD uses software mixing (DSM)
-
-
-
-
- ;/***************************************************************************\
- ;* struct SoundDevice
- ;* ------------------
- ;* Description: SoundDevice structure. See SDEVICE.TXT for documentation
- ;\***************************************************************************/
-
- STRUC SoundDevice
-
- D_int tempoPoll
- D_int configBits ; Configuration info bits. See enum
- ; sdConfigBits.
- D_int port ; Sound Device I/O port address
- D_int IRQ ; Sound Device IRQ number
- D_int DMA ; Sound Device DMA channel number
- D_int cardType ; Sound Device sound card type.
- ; Starting from 1, 0 means
- ; autodetect
- D_int numCardTypes ; number of different sound card
- ; types for this Sound Device
- D_int modes ; Possible modes for this SD,
- ; see enum sdMode. Updated by
- ; Detect()
- D_ptr sdName ; pointer to Sound Device name string
- D_ptr cardNames ; pointer to an array of pointers to
- ; sound card name strings
- D_int numPortAddresses ; number of possible port
- ; addresses in table
- D_ptr portAddresses ; pointer to an array of possible
- ; I/O port addresses
-
- D_ptr Detect
- D_ptr Init
- D_ptr Close
- D_ptr GetMixRate
- D_ptr GetMode
- D_ptr OpenChannels
- D_ptr CloseChannels
- D_ptr ClearChannels
- D_ptr Mute
- D_ptr Pause
- D_ptr SetMasterVolume
- D_ptr GetMasterVolume
- D_ptr SetAmplification
- D_ptr GetAmplification
- D_ptr PlaySound
- D_ptr ReleaseSound
- D_ptr StopSound
- D_ptr SetRate
- D_ptr GetRate
- D_ptr SetVolume
- D_ptr GetVolume
- D_ptr SetSample
- D_ptr GetSample
- D_ptr SetPosition
- D_ptr GetPosition
- D_ptr GetDirection
- D_ptr SetPanning
- D_ptr GetPanning
- D_ptr MuteChannel
- D_ptr AddSample
- D_ptr RemoveSample
- D_ptr SetUpdRate
- D_ptr StartPlay
- D_ptr Play
-
- IFDEF SUPPORTSTREAMS
- D_ptr StartStream
- D_ptr StopStream
- D_ptr SetLoopCallback
- D_ptr SetStreamWritePosition
- ENDIF
-
- ENDS
-
-
- ;* $Log: sdevice.inc,v $
- ;* Revision 1.4 1997/01/16 18:41:59 pekangas
- ;* Changed copyright messages to Housemarque
- ;*
- ;* Revision 1.3 1997/01/16 18:21:23 pekangas
- ;* Added function SetStreamWritePosition
- ;*
- ;* Revision 1.2 1996/05/28 20:29:07 pekangas
- ;* Added definitions for stereo sample types
- ;*
- ;* Revision 1.1 1996/05/22 20:49:33 pekangas
- ;* Initial revision
- ;*